home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-12-28 | 1.9 KB | 104 lines | [TEXT/NTP1] |
- /*====================================================================
- spark.def ©1998 rryu.
-
- spark defineition
-
- ====================================================================*/
-
- // Picts
- rf := OpenResFileX(HOME & "resource");
-
- DefConst('kDot1WPICT,GetPictAsBits("dot1w",nil));
- DefConst('kDot2WPICT,GetPictAsBits("dot2w",nil));
-
- CloseResFileX(rf);
-
-
- //
- // nomal spark
- //
- DefConst('kSpark,
- {
- init: func(ax,ay,adir,aspeed,alife,pict)
- begin
- self.x := ax << kPtPos;
- self.y := ay << kPtPos;
- self.dir := adir;
- self.speed := aspeed;
- self.life := alife;
- self.live := true;
-
- self.pict := pict;
-
- end,
-
- update: func(view)
- begin
- x := x + ((speed * call kFixedCos with (dir)) >> kPtPos);
- y := y + ((speed * call kFixedSin with (dir)) >> kPtPos) + 500;
-
- speed := speed - 100;
- if speed < 0 then speed := 0;
-
- life := life - 1;
- if life <= 0 then live := nil;
-
- view:CopyBits(pict,x >> kPtPos,y >> kPtPos,modeCopy);
- end,
- });
-
-
- //
- // comet spark
- //
- DefConst('kComet,
- {
- init: func(ax,ay,adir,aspeed,alife)
- begin
- self.x := ax << kPtPos;
- self.y := ay << kPtPos;
- self.dir := adir;
- self.speed := aspeed;
- self.life := alife;
- self.live := true;
-
- self.lx := Array(20,ax);
- self.ly := Array(20,ay);
- self.head := 20 - 1;
- self.tail := 0;
-
- self.dy := 0;
- end,
-
- update: func(view)
- begin
- x := x + ((speed * call kFixedCos with (dir)) >> kPtPos);
- y := y + ((speed * call kFixedSin with (dir)) >> kPtPos) + dy;
- dy := dy + 120;
-
- speed := speed - 100;
- if speed < 0 then speed := 0;
-
- life := life - 1;
- if life <= 0 then live := nil;
-
- lx[head] := x >> kPtPos;
- ly[head] := y >> kPtPos;
-
- head := (head+1) mod 20;
- tail := (tail+1) mod 20;
-
- local pts := Array(10,0);
- local i := head;
- for j:= 0 to 8 by 2 do
- begin
- pts[j] := lx[i];
- pts[j+1] := ly[i];
- i := (i+4) mod 20
- end;
-
- view:DrawShape(MakePolygon(pts),{transferMode: modeNotCopy});
- end,
- });
-
-